home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 7.3 KB | 192 lines |
- 1000 SCREEN 2 : CLS : KEY OFF : DIM DATAIO$(999)
- 1010 PRINT "***************************************************"
- 1020 PRINT "** COMMUNICATIONS TRANSFER PROGRAM - TRANSMIT **"
- 1030 PRINT "** SEPT 19,1982 VERSION 1.1 **"
- 1040 PRINT "***************************************************"
- 1050 PRINT "** REQUIRES THE SMART MODEM SWITCHES TO BE SET **"
- 1060 PRINT "** AS : **"
- 1070 PRINT "** 1 = UP COMPUTER SUPPORT OF DTR LEAD **"
- 1080 PRINT "** 2 = DOWN NON-VERBOSE RESULT CODES **"
- 1090 PRINT "** 3 = DOWN RESULT CODES SENT TO SCREEN **"
- 1100 PRINT "** 4 = DOWN NO ECHO OF CHARACTERS **"
- 1110 PRINT "** 5 = DOWN NO AUTO ANSWER OF PHONE **"
- 1120 PRINT "** 6 = DOWN COMPUTER FORCED TO ACCEPT DATA **"
- 1130 PRINT "** 7 = UP SINGLE LINE PHONE **"
- 1140 PRINT "***************************************************"
- 1150 '
- 1160 '*********************************************************
- 1170 '** routine to enter the current correct time **
- 1180 '*********************************************************
- 1190 LOCATE 17,1
- 1200 PRINT "THE CURRENT TIME IS - "; TIME$
- 1210 PRINT "IS THIS CORRECT (YES = 1 NO = 0) - ";
- 1220 A$ = INKEY$ : IF A$ = "" THEN 1220
- 1230 IF (A$ = "1") OR (A$ = CHR$(13)) THEN PRINT : GOTO 1400
- 1240 '
- 1250 ON ERROR GOTO 1330
- 1260 LOCATE 20,1
- 1270 PRINT "ENTER CORRECT TIME AS HH:MM:SS - ";
- 1280 INPUT A$
- 1290 IF A$ <> "" THEN TIME$ = A$
- 1300 GOTO 1400
- 1310 '
- 1320 '*********************************************************
- 1330 '** error handling routine for time input **
- 1340 '*********************************************************
- 1350 CLS : LOCATE 15,1
- 1360 PRINT "ERROR IN INPUT - PLEASE TRY AGAIN "
- 1370 RESUME 1270
- 1380 '
- 1390 '*********************************************************
- 1400 '** transmit file name entry section **
- 1410 '*********************************************************
- 1420 ON ERROR GOTO 1530
- 1430 CLS
- 1440 PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION OF THE FILE TO BE "
- 1450 PRINT "TRANSMITTED - NOTE : FILE MUST BE IN ASCII FORMAT FOR PROGRAM "
- 1460 PRINT "TO WORK. "
- 1470 PRINT
- 1480 INPUT "FILENAME = " ; TRANSMIT$
- 1490 OPEN TRANSMIT$ FOR INPUT AS #1
- 1500 GOTO 1630
- 1510 '
- 1520 '*********************************************************
- 1530 '** error handling routine for name entry section **
- 1540 '*********************************************************
- 1550 FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
- 1560 IF ERR = 53 THEN PRINT "FILE NOT FOUND "
- 1570 IF ERR = 64 THEN PRINT "BAD FILE NAME "
- 1580 IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
- 1590 LOCATE 5,1
- 1600 RESUME 1440
- 1610 '
- 1620 '*********************************************************
- 1630 '** receive file name entry section **
- 1640 '*********************************************************
- 1650 ON ERROR GOTO 1750
- 1660 CLS
- 1670 PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION WHERE THE FILE TO BE "
- 1680 PRINT "RECEIVED WILL BE STORED."
- 1690 PRINT
- 1700 INPUT "FILENAME = " ; RECIEVE$
- 1710 OPEN RECIEVE$ FOR OUTPUT AS #2
- 1720 GOTO 1850
- 1730 '
- 1740 '*********************************************************
- 1750 '** error handling routine for name input section **
- 1760 '*********************************************************
- 1770 FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
- 1780 IF ERR = 53 THEN PRINT "FILE NOT FOUND "
- 1790 IF ERR = 64 THEN PRINT "BAD FILE NAME "
- 1800 IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
- 1810 LOCATE 5,1
- 1820 RESUME 1670
- 1830 '
- 1840 '*********************************************************
- 1850 '** routine to enter phone number for call **
- 1860 '*********************************************************
- 1870 CLS
- 1880 INPUT "ENTER TELEPHONE NUMBER TO BE CALLED - ";TELE$
- 1890 LOCATE 4,1
- 1900 PRINT "THE PHONE NUMBER TO BE DIALED IS - ";TELE$
- 1910 PRINT "IS THIS CORRECT ? (YES = 1 NO = 0) "
- 1920 B$ = INKEY$ : IF B$ = "" THEN 1920
- 1930 IF (B$ = "1") OR (B$ = "Y") OR (B$ = "y") THEN 1970 ELSE 1940
- 1940 FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT : GOTO 1850
- 1950 '
- 1960 '*********************************************************
- 1970 '** routine to wait until 12:00 midnight to phone **
- 1980 '*********************************************************
- 1990 CLS
- 2000 B$ = LEFT$(TIME$,2)
- 2010 LOCATE 1,1
- 2020 PRINT TIME$,DATE$
- 2030 IF B$ = "24" THEN 2040 ELSE 2000
- 2040 PRINT "INITIATING CALL - MIDNIGHT"
- 2050 '
- 2060 '*********************************************************
- 2070 '** routine to initiate communications **
- 2080 '*********************************************************
- 2090 ON ERROR GOTO 0
- 2100 OPEN "com1:" AS #3
- 2110 IF (INP(&H3FD) AND &H20) = 0 THEN 2110 'TRANS HOLD REGISTER EMPTY?
- 2120 PRINT #3, "AT Z"
- 2130 GOSUB 2200
- 2140 SEC = 3 : GOSUB 2290
- 2150 PRINT #3, "AT DP " + TELE$
- 2160 GOSUB 2200
- 2170 END ' IF HERE THEN ERROR - CLOSE AND STOP
- 2180 '
- 2190 '*********************************************************
- 2200 '** routine to input a line from modem **
- 2210 '*********************************************************
- 2220 LINE INPUT #3, RECEIVEDATA$
- 2230 PRINT
- 2240 IF RECEIVEDATA$ = "0" THEN PRINT "RESPONSE = OK" : RETURN
- 2250 IF RECEIVEDATA$ = "1" THEN PRINT "RESPONSE = CONNECT" : RETURN 2370
- 2260 IF RECEIVEDATA$ = "2" THEN PRINT "RESPONSE = RING" : END
- 2270 IF RECEIVEDATA$ = "3" THEN PRINT "RESPONSE = NO CARRIER" : END
- 2280 IF RECEIVEDATA$ = "4" THEN PRINT "RESPONSE = ERROR" : END
- 2290 '
- 2300 '*********************************************************
- 2310 '** time delay for SEC seconds **
- 2320 '*********************************************************
- 2330 FOR DELAY = 1 TO 700*SEC : NEXT DELAY
- 2340 RETURN
- 2350 '
- 2360 '*********************************************************
- 2370 '** routine to transmit data to distant end **
- 2380 '*********************************************************
- 2390 ON COM(1) GOSUB 2660
- 2400 COM(1) ON
- 2410 ON ERROR GOTO 2880 ' TERMINATE
- 2420 SEC = 3 : GOSUB 2310
- 2430 WHILE NOT EOF(1)
- 2440 LINE INPUT #1 , SENDDATA$
- 2450 PRINT #3, SENDDATA$
- 2460 WEND
- 2470 PRINT #3, "65000 '"
- 2480 PRINT : PRINT "FILE - ";TRANSMIT$;" TRANSMITTED OK"
- 2490 '
- 2500 '*********************************************************
- 2510 '** routine to receive data and store it **
- 2520 '*********************************************************
- 2530 ON COM(1) GOSUB 2780
- 2540 IF VAL(RECEIVEDATA$) < 64000 THEN 2540
- 2550 COM(1) OFF
- 2560 '
- 2570 FOR I = 1 TO POINTER
- 2580 PRINT #2 , DATAIO$(I)
- 2590 NEXT I
- 2600 '
- 2610 CLOSE
- 2620 PRINT : PRINT "FILE - ";RECEIVE$;" RECEIVED AND STORED"
- 2630 GOTO 2880
- 2640 '
- 2650 '*********************************************************
- 2660 '** routine to tell if data sent from distant end **
- 2670 '*********************************************************
- 2680 LINE INPUT #3 , RECEIVEDATA$
- 2690 PRINT "DATA RECEIVED DURING FILE TRANSMISSION " ; RECEIVEDATA$
- 2700 IF RECEIVEDATA$ = "0" THEN PRINT "RESPONSE = OK"
- 2710 IF RECEIVEDATA$ = "1" THEN PRINT "RESPONSE = CONNECT"
- 2720 IF RECEIVEDATA$ = "2" THEN PRINT "RESPONSE = RING"
- 2730 IF RECEIVEDATA$ = "3" THEN PRINT "RESPONSE = NO CARRIER"
- 2740 IF RECEIVEDATA$ = "4" THEN PRINT "RESPONSE = ERROR"
- 2750 RETURN 2880 'TREAT ANY TRANSMISSION AS AN ERROR AND TERMINATE
- 2760 '
- 2770 '*********************************************************
- 2780 '** store each line in array DATAIO$ via interrupt **
- 2790 '*********************************************************
- 2800 LINE INPUT #3, RECEIVEDATA$
- 2810 POINTER = POINTER + 1
- 2820 DATAIO$(POINTER) = RECEIVEDATA$
- 2830 IF (RECEIVEDATA$ = "3") THEN PRINT : PRINT "LOSS OF CARRIER" : END
- 2840 IF VAL(RECEIVEDATA$) > 64000 THEN COM(1) OFF
- 2850 RETURN
- 2860 '
- 2870 '*********************************************************
- 2880 '** TERMINATE PROGRAM **
- 2890 '*********************************************************
- 2900 END
-